### プロジェクト2 ブリージングLED **1. 説明** ArduinoのブリージングLEDは、オンボードのプログラム可能なPWMを利用してアナログ波形を出力します。電源を入れると、波形のデューティサイクルを調整することでLEDの明るさを変化させ、最終的にブリージングLEDの効果を実現します。 この方法により、時間経過に伴ってLEDの明るさを変化させることで環境光をシミュレートできます。また、ブリージングLEDはカラフルなミニライトとして、落ち着いた暖かい雰囲気を作り出すことができます。 **2. PWMとは?** PWMはデジタル手段でアナログ出力を制御するもので、波形のデューティサイクル(高レベルと低レベルが周期的に切り替わる信号)を調整できます。 Arduinoの場合、電圧出力のデジタルポートはLOWとHIGHで、それぞれ0Vと5Vに対応します。一般的にLOWを0、HIGHを1と定義します。Arduinoは1秒間に500回の0または1の信号を出力します。もしそれらがすべて「1」であれば5Vが出力されます。逆にすべて0なら0Vが出力されます。あるいは0101010101...のように交互であれば、平均出力は2.5Vになります。 つまり、0と1の出力比率が電圧値に影響し、単位時間あたりに出力される0と1の信号が多いほど制御はより正確になります。 ![](media/A21.png) **3. 配線図** ![](media/A22.png) **4. テストコード** 「for」文を使って変数を0から255まで増加させ、その変数をPWM出力(analogWrite(pin, value))として定義します。なお、遅延時間を設けることでLEDの点灯時間の制御を強化できます。次に、別の「for」文で255から0まで減少させ、遅延時間を設けてLEDの減光プロセスを制御します。 1. 2つのコードブロックをドラッグします。 ![](media/A23.png) 2. 「変数」パートから以下のブロックをドラッグし、名前を「item」、初期値を「0」に設定します。このブロックを「ずっと」ブロック内に入れます。 ![](media/A24.png) 3. 「制御」パートから以下のブロックをドラッグし、繰り返し回数をPWMの最大値である255に設定します。 ![](media/A25.png) 4. 「変数」パートから以下のブロックをドラッグし、変更対象を「item」、モードを「++」に設定します。 ![](media/A26.png) 5. 「LED」パートから以下のブロックをドラッグし、LEDピンをIO5に設定します。さらに「変数」ブロックを追加し、空欄に「item」を入力します。 ![](media/A27.png) 6. 「制御」パートから以下のブロックをドラッグし、時間を0.01秒(10ms)に設定します。 ![](media/A28.png) 7. これまでの手順に従い、変数モードが「– –」だけ異なるもう一つのコードブロックを作成します。 ![](media/A29.png) **完成コード:** ![](media/A30.png) **5. テスト結果** コードをアップロードすると、LEDが徐々に暗くなり、均等に「呼吸」しているように見えます。 **6. コード説明** 1. このブロックは変数の使用範囲、変数の種類、名前、初期値を設定するためのものです。 ![](media/A31.png) 2. この繰り返しブロックの空欄に繰り返し回数を指定できます。 ![](media/A32.png) 3. 空欄に変数名を入力すると、コード実行ごとにその値が1ずつ増加します。「++」は「– –」に変更可能です。 ![](media/A33.png) 4. 空欄に変数名を入力すると、コード実行ごとにその値が1ずつ減少します。「– –」は「++」に変更可能です。 ![](media/A34.png) 5. これはPWM出力モジュールで、白いボックスが出力PWMの値を示します。 ![](media/A35.png)